-
Notifications
You must be signed in to change notification settings - Fork 3.5k
management: confirm server-side filtering 404s #18265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
🤖 GitHub commentsExpand to view the GitHub comments
Just comment with:
|
|
This pull request does not have a backport label. Could you fix it @yaauie? 🙏
|
CHANGED BEHAVIOR (system indices): - when communicating with Elasticsearch >= 7.10, a fetch-all-pipelines query that results in a 404 error is treated as a meaningful error since Elasticsearch does NOT emit 404 when no pipelines have been configured, preventing a misconfigured proxy from causing pipelines to be shut down - when communicating with Elasticsearch >= 8.3, a server-side query for pipelines that results in a 404 error response no longer results in the immediate shut-down of existing pipelines unless a second client-side filtering of all available pipelines indicates that none should be running. MAINTAINED BEHAVIOUR (legacy hidden indices): - when commmunicating with Elasticsearch < 7.10, a pipeline-fetching query that results in a 404 error response is STILL treated as an empty result set, and will cause any running pipelines to be shut down.
af0a331 to
252d4e0
Compare
💛 Build succeeded, but was flaky
Failed CI Steps
History
|
kaisecheng
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Confirmed the API returns the corresponding codes as described.
I left a minor suggestion.
| # search to rule out a proxy emitting a 404. | ||
| if es_supports_pipeline_wildcard_search?(es_version) | ||
| begin | ||
| logger.trace("querying for pipelines #{pipeline_ids.join(",")} using server-side wildcard search") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| logger.trace("querying for pipelines #{pipeline_ids.join(",")} using server-side wildcard search") | |
| logger.trace? && logger.trace("querying for pipelines #{pipeline_ids.join(",")} using server-side wildcard search") |
Release notes
What does this PR do?
When Central Management is looking up the instance's assigned pipelines, it now confirms a 404 is in fact an empty assignment, differentiating it from a 404 emitted for other reasons.
Why is it important/What is the impact to the user?
An ES node leaving the cluster can emit a 404, indicating that it cannot satisfy the request, which is different than an indication that the list of pipelines is empty.
This fix prevents such a 404 from shutting down the running pipelines.
Checklist
[ ] I have made corresponding changes to the documentation[ ] I have made corresponding change to the default configuration files (and/or docker env variables)How to test this PR locally
Related issues